.TH MPI_Register_datarep 3 "6/6/2023" " " "MPI"
.SH NAME
MPI_Register_datarep \-  Register functions for user-defined data representations 
.SH SYNOPSIS
.nf
int MPI_Register_datarep(ROMIO_CONST char *datarep,
MPI_Datarep_conversion_function * read_conversion_fn,
MPI_Datarep_conversion_function * write_conversion_fn,
MPI_Datarep_extent_function * dtype_file_extent_fn, void *extra_state)
.fi
.SH INPUT PARAMETERS
.PD 0
.TP
.B datarep 
- data representation name (string)
.PD 1
.PD 0
.TP
.B read_conversion_fn 
- function invoked to convert from file representation to
native representation (function)
.PD 1
.PD 0
.TP
.B write_conversion_fn 
- function invoked to convert from native representation to
file representation (function)
.PD 1
.PD 0
.TP
.B dtype_file_extent_fn 
- function invoked to get the exted of a datatype as represented
in the file (function)
.PD 1
.PD 0
.TP
.B extra_state 
- pointer to extra state that is passed to each of the
three functions
.PD 1

.SH NOTES
This function allows the user to provide routines to convert data from
an external representation, used within a file, and the native representation,
used within the CPU.  There is one predefined data representation,
.I external32
\&.
Please consult the MPI-2 standard for details on this
function.

.SH NOTES FOR FORTRAN
All MPI routines in Fortran (except for 
.I MPI_WTIME
and 
.I MPI_WTICK
) have
an additional argument 
.I ierr
at the end of the argument list.  
.I ierr
is an integer and has the same meaning as the return value of the routine
in C.  In Fortran, MPI routines are subroutines, and are invoked with the
.I call
statement.

All MPI objects (e.g., 
.I MPI_Datatype
, 
.I MPI_Comm
) are of type 
.I INTEGER
in Fortran.

